A popular device for handling large amounts of information in a data processing system is the automated cartridge library. Automated cartridge libraries store and manage large numbers of standardized cassettes containing magnetic tape on which is recorded data. Typically an automated cartridge library comprises arrays of uniquely identified cells, each cell being formed to contain a single tape cartridge. A robot assembly is operable within the automated cartridge to locate a particular cell, retrieve a tape cartridge from the particular cell, convey the tape cartridge to a tape drive, and insert the tape cartridge into the tape drive. The tape drive then reads or writes data to the magnetic tape of the tape cartridge. In this way, a large number of tape cartridges are automatically accessible to a single tape drive. The operation of the automated cartridge library is typically controlled by a host computer communicating with a library control unit associated with the library storage module.
In some applications, such a large amount of data must be stored that it is desirable to employ more than one automated tape library to manage the large number of tape cartridges. Rather than repeating an entire automated cartridge system including the host computer, multiple library storage modules are linked together. Each library storage module contains cell arrays and a robotic assembly and may contain at least one tape drive, but does not require the host computer. Multiple library storage units are arranged adjacent to one another and pass through ports are provided for passing tape cartridges from one library storage module to an adjacent library storage module, where tape cartridges are picked up by the robot assembly of the adjacent library storage module and transported to and inserted in a tape drive of the adjacent library storage module.
Frequently, a file to be read/written from/to a tape cartridge exceeds the storage capacity of the tape cartridge. In this case, multiple tape cartridges are needed to store the file. For reading, each of the tape cartridges store a respective part of the file and together store the complete file. For writing, each of the tape cartridges are to store a respective part of the file and together are to store the complete file. These type of files are referred to as a multi-cartridge files.
Currently, there are two methods for allocating tape drives for multi-cartridge files. Each of the methods will be described with respect to writing respective portions of a file to the tape cartridges. It is to be understood that reading respective portions of a file from the tape cartridges is performed in a similar manner.
The first prior art method is to allocate one tape drive for the multiple tape cartridges and is described with reference to the time line illustrated in FIG. 1. It is to be understood that the time line is not drawn to scale. In this method, a tape drive is allocated to store a first part of a file on a first tape cartridge. The robot assembly retrieves the first tape cartridge from its storage cell and mounts it into the tape drive. The tape drive then writes the first part of the file to the first tape cartridge. The tape drive then rewinds the first tape cartridge after the first part of the file has been written. The robot assembly then dismounts the first tape cartridge from the tape drive and moves it to its storage cell. The tape drive is then used to store a second part of the file on a second tape cartridge. The robot assembly retrieves the second tape cartridge from its storage cell and mounts it into the tape drive. The tape drive then writes the second part of the file to the second tape cartridge. The process is then continued using one tape drive until all of the parts of the file have been written to respective tape cartridges. A disadvantage associated with allocating one tape drive for the multiple tape cartridges is that the tape drive cannot write data to a second tape cartridge while a first tape cartridge is being rewound and unmounted, and while the second tape cartridge is being mounted. Accordingly, it takes a long time to write a multi-cartridge file to multiple cartridges using one tape drive.
The second prior art method is to allocate two tape drives for the multiple tape cartridges and is described with reference to the time line illustrated in FIG. 2. It is to be understood that the time line is not drawn to scale. In this method, a first tape drive is allocated to store a first part of a file on a first tape cartridge and a second tape drive is allocated to store a second part of the file on a second tape cartridge. The robot assembly retrieves the first tape cartridge from its storage cell and mounts it into the first tape drive. The first tape drive then writes the first part of the file to the first tape cartridge. While the first tape drive is writing to the first tape cartridge, the robot assembly retrieves and mounts the second tape cartridge into the second tape drive. The second tape drive then remains idle as the first tape drive continues writing to the first tape cartridge. Generally, writing to a tape cartridge takes more time than rewinding, dismounting, and mounting a tape cartridge.
The first tape drive then rewinds the first tape cartridge after the first part of the file has been written. Upon the first tape drive beginning to rewind the first tape cartridge, the second tape drive starts to write the second part of the file to the second tape cartridge. While the second tape drive is writing to the second tape cartridge, the first tape cartridge rewinds and the robot assembly dismounts the first tape cartridge from the first tape drive and mounts the third tape cartridge (if required). The first tape drive then remains idle as the second tape drive continues to write to the second tape cartridge. The process is then continued writing alternately between the two tape drives until all of the parts of the file have been written to respective tape cartridges. A disadvantage associated with allocating two tape drives for the multiple tape cartridges is that each of the tape drives is allocated but sits idle for extended periods of time. Thus they are unavailable for other users.
Further, both of the prior art methods fix the tape drive allocation at the beginning of writing to the first tape cartridge. Thus, if the second or subsequent tape cartridges are in different libraries from the libraries in which the tape drives are located then pass through operations between the libraries are necessary.
What is needed is a system and method for allocating tape drives for multi-cartridge files that achieve most of the benefits of allocating two tape drives without the cost of a mostly idle tape drive. The needed system and method would also reduce the probability of requiring pass through operations on subsequent tape cartridges.